Recommendation system based on common interests in social networks

ABSTRACT

Social network friend-based recommendations are provided. Based on user consumption data provided by one or more service providers, a determination may be made as to which social network contacts a user has who may have preferences for video, music, and other media that are close to the user&#39;s. The determination of social network contacts who share a common interest and the user consumption data of those social network contacts may be utilized to infer recommendations for the user. Other functionalities may be provided, such as manual recommendations, placing emphasis on recommendations from particular friends, email notifications of content that a friend has consumed that the user has not, an option to view what a social network contact is viewing, providing a list of programs that the user and a social network contact have both seen, and providing advertisements based on consumption data, recommendations, and/or discovered areas of interest.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to U.S. Provisional PatentApplication No. 61/788,701 titled “Recommendation System Based on CommonInterests in Social Networks” filed Mar. 15, 2013, the disclosure ofwhich is hereby incorporated by reference in its entirety.

BACKGROUND

Modern social networks provide services from wide-scale public socialnetworks to more proprietary vertical systems of sharing information andcontent. Users of these various networks oftentimes have a large groupof “friends,” only a small percentage of which may actually be friendswhom the user may regard as close friends or family members. A majorityof a user's social networking friends may be comprised of more distantfriends, relatives, and acquaintances about whom the user potentiallyknows very little.

It is common for various social media networks to provide socialactivity with information about various categories of interest of auser's social media friends. For example, what television shows, music,movies a social media friend “likes” or has listened to or watched, arestaurant a social media friend has eaten at and “liked,” etc.Sometimes, such information may be of interest to or useful to a user,for example, if the user shares common interests or tastes in aparticular category as the social media friend providing theinformation; however, this information may be intermingled with socialactivity and information from social media contacts with whom the userdoes not share common interests or tastes.

Currently, a user may be flooded with social activity and informationfrom social media contacts who may not be able to provide beneficial orrelevant recommendations on new media content, goods, or services forthe user, and may also be unaware of other social media friends with whohe may share common interests and tastes who could make relevantrecommendations to the user. It is with respect to these and otherconsiderations that the present invention has been made.

SUMMARY

Embodiments of the present invention may be utilized to compareconsumption profiles of a user and his social networking friends,discover matches to the user, and provide content recommendations basedon future content consumption or purchases by matched social mediafriends.

Current social networks and content delivery systems oftentimes trackmedia content consumption data and/or purchases of various goods andservices. This information may be utilized to help identify a subset ofa user's existing base of contacts/social media friends who may have adegree of similarity of taste in a particular area or niche (e.g.,interest in books, movies, TV shows, music, other goods, or services).Automated recommendations, advertisements, and other features andcapabilities may be provided to the user based on the activityinformation and media consumption data of the subset of social mediafriends.

Embodiments may help to build human trust in a recommendation. Forexample, a recommendation based on an aggregate number of anonymouspeople on the Internet who may be considered “similar” to a user maypotentially not be convincing to the user. However, a recommendationbased on consumption data of an actual human friend or acquaintance withwhom the user may already share similar interests may potentially bemore influential to the user.

The details of one or more embodiments are set forth in the accompanyingdrawings and description below. Other features and advantages will beapparent from a reading of the following detailed description and areview of the associated drawings. It is to be understood that thefollowing detailed description is explanatory only and is notrestrictive of the invention as claimed.

BRIEF DESCRIPTION OF DRAWINGS

Referring now to the drawings in which like reference numbers representcorresponding parts throughout:

FIG. 1 is a simplified block diagram illustrating a system for providingrecommendations based on common interests in social networks;

FIG. 2 is a flow chart of a method for providing recommendations basedon common interests in social networks according to an embodiment;

FIG. 3 is a block diagram illustrating example physical components of acomputing device with which embodiments may be practiced;

FIGS. 4A-4B illustrate a suitable mobile computing environment withwhich embodiments may be practiced; and

FIG. 5 is a simplified block diagram illustrating a cable televisionservices system architecture providing an operating environmentaccording to an embodiment.

DETAILED DESCRIPTION

Embodiments provide recommendations based on common interests in socialnetworks. As was described briefly above, users are oftentimes floodedwith their social networking contacts' activity information, much ofwhich may be associated with “friends” whom the user may not sharecommon tastes or interests. Embodiments provide automated discovery of auser's existing social media friends whose tastes may match his, and toharness those social media friends for content recommendations.Embodiments may be utilized to help cut through the “clutter” of socialactivity information and to help enable a user to focus onrecommendations from social media friends who have well matched tastesin a particular category of interest. It may be noted that the match mayor may not be done on a 1-to-1 match basis. Further, the system may notbe limited to examination on a per category basis, but may also considerthe impact of one or several different categories when computingsimilarities. Recommendations may be issued for just one type ofcontent, or may be issued for a profile of content preferences that maybe applied across a broad cross-section of “categories of interest”. Forexample, interest in a popular novel or series that may become ascreenplay in the future could potentially result in a recommendationfor the movie, or vice versa for the novel. According to an embodiment,recommendations may also be available for other types of content such asa musical score. The user may then be guided to purchase the new contentwhere available through a variety of online or local retailers. Further,the system may also provide for informing the user and social mediafriends of their shared interests in an effort to build furtherreal-world relationships or to help promote content recommendationsbetween the user and social media friends.

While most cable multiple systems operators (MSOs), telephone companies(telcos), and satellite providers of television content may be able tocollect and utilize users' media consumption data, such providers maynot have enough individual nationwide market share that all of any oneuser's friends may be served by the same provider. Alternatively, asocial network may possibly contain all or nearly all of a user'sfriends; however, such social networks may be stymied from makingrelevant recommendations because they may not be able to see all thevideo, movies, music, etc. that the user and his social media friendsconsume, but only those activities that users actively publish.Embodiments may utilize a collaboration of social network information(e.g., a user's social media contacts) and information provided by MSOs,telcos, and satellite providers (e.g., a user's consumption history) toprovide social media friend-based recommendations.

Consider the following example scenario: User A “friends” User B on asocial media network. User A and User B may be acquaintances, forexample, co-workers from a previous job, former classmates, members of anon-profit organization, etc. Using embodiments of the presentinvention, television viewing of User A and User B may be monitored, andUser A may be informed of a commonality in viewing habits betweenhimself and User B. For example, while User A is watching a televisionprogram, a message may be presented to him such as, “User B shares 92%of your tastes in television programs. He is currently watching <ProgramX>, which you have not watched. Would you like to record it?”Accordingly, User A may select to record or watch the recommendedprogram, and may potentially communicate with User B about their sharedinterests.

It should be noted, although many existing recommendation systems employa “users who liked X will also like Y” sort of system, the “other users”are oftentimes people who are unknown to the user and may very likelywish to remain unknown for privacy purposes. Embodiments of the presentinvention provide recommendation from people who already have a socialrelationship with a user.

According to another embodiment, the system may also provide for amechanism which monitors recommendation uptake on a per user basis. As auser makes a decision to consume or ignore a recommendation (or to haltrecommended content during consumption and prior to completion), thesystem may observe such viewership behavior as feedback. This feedbackdata may be used to further refine the user's preferences towardsparticular genres and sub-genres of the content. Future recommendationcalculations may also have access to the feedback data when computing anext set of recommendations, which may be used to selectively promote ordemote content. According to an embodiment the process of promoting ordemoting the content may comprise weighting a subset of entries in agroup of unique data.

According to another embodiment, the system may also have the capacityto interpret and execute a set of flexible business rules that mayactively prioritize content. For example, certain content may bedetermined to be content that may hold a user's attention for longerthan other content, or that may be determined to keep users coming backfor more. This type of content, sometimes referred to as sticky content,may be prioritized according to business rules.

Embodiments may be provided to record the above mentioned viewershipbehavior using a variety of different metrics, which may include, butare not limited to, a direct positive or negative feedback, for exampleselection of a “like” or a “dislike” button, indirectly observingwhether recommended content is ignored, consumed to completion; orstopped prior to completion. The above and other metrics may indicatevarying degrees of interest, and/or may observably indicate agreement ordisagreement with recommended content.

These embodiments may be combined, other embodiments may be utilized,and structural changes may be made without departing from the spirit orscope of the present invention. The following detailed description istherefore not to be taken in a limiting sense, and the scope of thepresent invention is defined by the appended claims and theirequivalents. Referring now to the drawings, in which like numerals referto like elements throughout the several figures, embodiments of thepresent invention and an exemplary operating environment will bedescribed.

Although the below description is described as associated with videocontent recommendations, it should be appreciated that embodiments maybe utilized for other types of content, goods, or services in otherenvironments. For example, this could also work equally as well forautomatically choosing music, choosing movies to watch at a theatre,choosing books to purchase, selecting products to advertise, etc.

Referring now to FIG. 1, a simplified block diagram illustrating asystem 100 for providing recommendations based on common interests in asocial network is shown. The system 100 may comprise a recommendationengine 112 operable to analyze a user's 102 consumption data 104A andconsumption data 104 associated with the user's social network contacts;to calculate a correlation in one or more interest areas between theuser 102 and the user's social network contacts; and to determine andprovide media content recommendations based on the consumption data 104associated with social network contacts of the user 102 who share adegree of commonality in one or more interest areas with the user 102.

A user 102 may be a member of and may access one or more social networks108 via a network 120, such as the Internet. A social network 108 may beutilized to create a public or semi-public profile within a boundedsystem. A user may select other users (herein referred to as socialnetwork contacts 110) with whom he may share a connection (e.g., commoninterests, common social connections, common relationships, etc.), andview and traverse his collection of social network contacts and thoseconnections of others within the system 108. The social network 108 maybe accessed via a network 120, such as the Internet.

According to an embodiment, a user 102 may provide his social networkcredentials to a video services provider 106 such that the videoservices provider 106 may be able to retrieve a user's social networkcontact list 110 and attempt to match the list with a known database ofthe provider's customers to provide social network contact-basedrecommendations.

According to an embodiment, the user 102 and one or more of the user'ssocial network contacts 110 may be consumers of a same service provider106, wherein a service provider 106 may include a provider of mediacontent (e.g., music; video, goods and services, books, etc.), forexample, cable multiple systems operators (MSOs), telephone companies(telcos), satellite providers of television content, etc. The serviceprovider 106 may collect and maintain consumption data 104, which mayinclude video viewership records. The service provider 106 may store andmaintain consumption data 104 in a local or remote database dedicated tothe particular service provider 106. This embodiment is exemplified inFIG. 1 with service provider A 106A, the user 102, and social networkcontact A 110A. As illustrated, the user 102 and social network contactA 110A are both consumers of services provided by service provider A106A; and service provider A 106A stores and maintains consumption data104 associated with both users 102, 110A. According to an embodiment,the system 100 may correlate the consumption data 104 with its ownrecord of previous recommendations to generate feedback for futurerecommendations.

According to another embodiment, a group of video service providers106A, 106B, 106C, 106N may cooperate to provide social networkcontact-based recommendations. According to this embodiment, videoviewership records (user consumption data 104) associated with a user102 and one or more of the user's social network contacts may becollected from various service providers 106A, 106B, 106C, 106N.Consumption data 104 may be collected and stored in a centralizeddatabase 114. In the case of IP-based packetized video distribution, acentralized consumption monitoring system may be implemented as part acontent distribution network (CDN) or master content request system. Ascan be appreciated, embodiments may include coordination on format ofviewership records (user consumption data 104), privacy safeguards, andother technical measures to allow for rapid and secure data interchange,financial system linkages for any payment structures, etc.

Having described a system architecture 100, FIG. 2 is a flow chart of amethod for providing social network contact-based recommendations basedon common interests in a social network 108 according to an embodiment.The method 200 may begin at START OPERATION 205, and may proceed toOPERATION 208, where social network information may be received. Thesocial network information may include permission by a user 102 to allowa service provider 106 to share and use consumption data 104 for socialnetwork contact-based recommendations, and may include social networkcredentials such that a list of the user's 102 social network contact s110 may be identified. Permission to share and use consumption data 104for social network contact-based recommendations may also be receivedfrom one or more of the user's social network contacts 110. Otherinformation may also be received, such as user settings and preferencedata, etc.

The method 200 may proceed to OPERATION 210, where user consumption data104 may be collected. Consumption data 104 associated with one or moreparticular areas of interest (e.g., television programming, videocontent, music content, electronic books, goods, organizationalaffiliations, hobbies, websites, blogs, services, etc.) may becollected. According to an embodiment, consumption data 104 for a user102 and for the user's social network contacts 110 may be collected onan on-going basis. Consumption data 104 may include a listing of thecontent consumed by the user 102 and by one or more social networkcontacts 110 of the user 102, and may also include rating data providedby the user 102 and social network contacts 110 of the user 102.

OPERATION 210 may be performed via a variety of methods. According toone embodiment, for television video consumption, distributed, localizedcollection agents, for example, within a set top box (STB), may reportindividually back to a centralized database 114. According to anotherembodiment, centralized collection systems based on head end tuningrecords of switched digital video (SDV) systems may be aggregated into acentral database 114. In the case of IP-based, packetized videodistribution, a centralized consumption monitoring system may beimplemented as part of the content distribution network (CDN) or mastercontent request system. As can be appreciated, any number of similarmethods may be utilized to capture media content that individual users102,110 are consuming, for example, television programs that users102,110 may watch on their television sets. Embodiments may be utilizedto build a database 114 of content consumed by users 102,110 of thesystem 100.

According to embodiments, user consumption and preferences may bedetermined via a variety of methods. For example, user preference may beestablished via monitoring a self-reporting apparatus such as a “like”button; patterns in viewing behavior; measuring popularity of posts andtaking note of the types of content, links, or keywords they contain; orsimilar indirect reporting metrics. The method 200 may proceed toOPERATION 215, where a correlation in a particular interest area betweena user 102 and the user's network of social network contacts 110 may becomputed. That is, a determination may be made as to which socialnetwork contacts 110 share a common interest in a particular area withthe user 102. At OPERATION 220, recommendations may be made in aparticular area of interest based on the consumption data 104 of socialnetwork contacts 110 who have been determined to share a commonality inthe particular interest area or in another interest area with the user102. An interest area may include, but is not limited to, televisionprogramming, video content, music content, electronic books, goods,organizational affiliations, hobbies, websites, blogs, services, etc.For example, a determination may be made that a user 102 and a socialnetwork contact 110 share an interest in movies. Accordingly, arecommendation for a certain movie, for example, a movie that the user102 has watched but that his social network contact 110 has not watched,may be provided to the social network contact 110. The recommendationmay be for the movie, or alternatively, may be for other types ofcontent, products, services, hobbies, websites, blogs, etc., that mayhave an affiliation with the determination of similarity in movieinterests. For example, the recommendation may be a recommendation for abook on which the movie is based.

OPERATIONS 215 and 220 may be performed by a variety of pattern matchingand recommendation algorithms. Those skilled in the art may recognizethat the approaches of collaborative filtering (i.e., basingsimilarities solely on the items consumed without needing information onthe properties of the items), content-based filtering (i.e., basingsimilarities on the underlying properties or metadata associated withthe items consumed), or hybrid methodologies (utilizing collaborativeand content-based filtering) may be applied at OPERATIONS 215 and 220.Mathematical algorithms such as K-Nearest Neighbor, Pearson Correlation,Rocchio Relevance Filtering, and other algorithms may be employed toperform these computations without changing the underlying methodologyof embodiments of the present invention.

As is commonly known by those skilled in the art, the K-Nearest Neighbor(k-NN) algorithm is a simple machine learning algorithm where an objectis classified by a majority vote of its neighbors, with the object beingassigned to the class most common amongst its k nearest neighbors (k isa positive integer, typically small). If k=1, then the object is simplyassigned to the class of its nearest neighbor.

As is commonly known by those skilled in the art, the PearsonCorrelation reflects the degree of linear relationship between twovariables, and may range from +1 to −1. A correlation of +1 means thatthere is a perfect positive linear relationship between variables. Acorrelation of −1 means that there is a perfect negative linearrelationship between variables. A correlation of 0 means there is nolinear relationship between the two variables.

As is commonly known by those skilled in the art, Rocchio's method is awell-known algorithm associated with information retrieval,traditionally used for relevance feedback and for document routing,based on an assumption that most users have a general conception ofwhich documents should be denoted as relevant or non-relevant.

OPERATION 215 may be performed on a regular basis, for example, todetermine whether a user 102 and a social network contact's 110 tastesmay be drifting apart or whether new social network contacts 110 mayhave similar tastes, etc. According to an embodiment, correlation mayinclude either system-wide or user-configurable thresholds fordetermining how close a social network contact's tastes may be to auser's 102 tastes before being considered useful for social networkcontact-based recommendations. According to another embodiment,correlation may be constructed such that a predetermined number ofsocial network contacts 110 with a highest correlation value (top 2, top5, etc.) may be used. According to another embodiment, correlation maybe constructed in a hybrid manner.

OPERATION 220 may be performed as frequently as needed for a user's 102consumption behavior. According to one embodiment, frequent automatedrecommendations based on social network contacts 110 with similar tastesmay be provided in an always-present user interface that the user 102may see constantly, or may be optional for whenever the user 102manually selects to see recommendations either from all his socialnetwork contacts 110, a subset of social network contacts 110, or from aparticular social network contact 110. OPERATION 220 may also beaccomplished more indirectly as part of a general purpose recommendationengine implementation by factoring “social network contacts with similartastes” into the general purpose recommendation engine with a higherweighting.

The method 200 may proceed to OPERATION 225, where a notification may beprovided to the user 102 and/or to one or more of the social networkcontacts 110 of the user 102 with whom the user 102 shares a similarityin tastes. The notification may be provided in various formats and maycontain a variety of information. For example, the notification may be amessage displayed on a user interface of a viewing device, an email, atext message sent to the user's 102,110 communication device, a categoryof content (e.g., “Recommendations from your Friends”), a message postedto a contact's social network page, etc. The notification may includeone or more content recommendations, may include a listing of socialnetwork contacts 110 on whose consumption data 104 a recommendation isbased, a selectable functionality to send a message to or chat with asocial network contact 110, a percentage of similarity of tastes, etc.

Identification of a social network contact 110 with whom the user 102shares a similar interest may be provided in a user interface via in anumber of ways, for example, a column heading of “Movies that <user>Likes”, a bar graph showing the top 3 users (social network contacts110) and their correlation scores, a message corresponding to the socialnetwork contacts 110 that pops up when the user 102 hovers over arecommendation, or any number of other methods. As can be appreciated,various privacy safeguards may be put into place, for example, sincesome individuals may be embarrassed if some of their viewing historywere visible to others without an explicit opt-in.

According to an embodiment, OPERATION 225 may provide a potential humansocial benefit of merely identifying which social network contactsactually share common interests. For example, according to somestatistics, an average person on a social network site 108 may have anaverage of 229 social network contacts. Many users 102 may be fascinatedto know with which one or two individuals of the group of social networkcontacts 110 he may have the closest music tastes, with which socialnetwork contacts 110 he may have the closest tastes in movies, withwhich social network contacts 110 he may have the closest taste inrestaurants, etc. In many cases, it may potentially be someone the user102 did not expect, which may encourage the user 102 to socialize with adifferent group of social network contacts 110 than he mighttraditionally have in the past.

The method 200 may then proceed to OPERATION 230, where recommendationsuptake may be monitored on a per user basis, and similarities in tastesmay be confirmed based on whether the user 102 provides feedback (e.g.,via a selection of a “like” or “dislike” button, etc.), ignores therecommendation, consumes the recommended content, or halts therecommended content during consumption and prior to completion. Theabove behavior may be converted to feedback data which in turn may beutilized to confirm the similarities or dissimilarities in tastes. Thefeedback data derived from OPERATION 230 may be used in OPERATION 215 tomake future recommendations to the user 102. Feedback data may be usedin recommendations calculations when computing a next set ofrecommendations. For example, content may be promoted or demotedaccording to feedback data.

The method 200 may proceed to OPERATION 235, where additionalfunctionalities may be enabled to the user 102 and/or to the socialnetwork contacts 110 who have similar tastes as the user 102. Forexample, a functionality may be provided for allowing a social networkcontact 110 to manually push specific recommendations to the user 102.Once a user 102 discovers some closely shared niche interest with asocial network contact 110, it may be likely that the user 102 and thesocial network contact 110 may want to more regularly communicate ortake actions based on the shared interest. According to embodiments,additional functionalities that may be enabled may include, but are notlimited to, allowing a user 102 to select to emphasize recommendationsfrom particular social network contacts 110; email notifications sent ona periodic basis including a listing of programs that a social networkcontact 110 has watched, but that the user 102 has not; providing aselectable option to watch (or listen to) what a social network contact110 is currently watching (or listening to), which when selected, mayautomatically tune the user's device to a program currently beingwatched by the social network contact 110; providing a list of programsthat the user 102 and a social network contact 110 have both seen (forexample, providing a commonality about which to communicate if desired);etc. According to an embodiment, the system 100 may presentrecommendations to the user 102 in the context of the social network 108either via a “public profile” that faces all of the social network's 108participants or via the private profile that the user 102 uses to accessthe social network 108, and may therefore be used to grant the systemaccess. As can be appreciated, recommendations made the above way mayserve to spark connection between otherwise disinterested or looselyaffiliated users, despite their common interests. Other functionalitiesmay be enabled, such as providing advertisements for a user 102 based onconsumption data 104, recommendations, and/or discovered areas ofinterest. The method 200 may end at OPERATION 295.

FIG. 3 is a block diagram illustrating example physical components of acomputing device 300 with which embodiments may be practiced. In someembodiments, one or a combination of the components of therecommendation system 112 may be implemented using one or more computingdevices like the computing device 300. It should be appreciated that inother embodiments, one or a combination of the components of the socialnetwork contact-based recommendation system 112 may be implemented usingcomputing devices having hardware components other than thoseillustrated in the example of FIG. 3.

Computing devices may be implemented in different ways in differentembodiments. For instance, in the example of FIG. 3, the computingdevice includes a processing system 304, memory 302, a network interface306, a secondary storage device 308, an input device 310, a videointerface 312, a display unit 314, and a communication medium 316. Inother embodiments, the computing device 300 may be implemented usingmore or fewer hardware components (e.g., a video interface, a displayunit, or an input device) or in combination with other types of computersystems and program modules. The memory 302 includes one or morecomputer-readable media. According to one embodiment, the recommendationengine 112 may be stored locally on computing device 300. Memory 302thus may store the computer-executable instructions that, when executedby processor 304, provide social network contact-based recommendationsas described above with reference to FIGS. 1-2.

In various embodiments, the memory 302 is implemented in various ways.For example, the memory 302 can be implemented as various types ofcomputer-readable media. According to embodiments, the termcomputer-readable media includes two different types of media includingcommunication media and computer-readable storage media. Communicationmedia include information delivery media. Computer-executableinstructions, data structures, program modules, or other data in amodulated data signal, such as a carrier wave or other transportmechanism, may be embodied on a communications medium. The termmodulated data signal describes a signal that has one or morecharacteristics set or changed in such a manner as to encode informationin the signal. For example, communication media can include wired media,such as a wired network or direct-wired connection, and wireless media,such as acoustic, radio frequency (RF), infrared, and other wirelessmedia.

The term computer-readable storage medium may also refer to devices orarticles of manufacture that store data and/or computer-executableinstructions readable by a computing device. The term computer-readablestorage media encompasses volatile and nonvolatile, removable andnon-removable media implemented in various methods or technologies forstorage and retrieval of information. Such information can include datastructures, program modules, computer-executable instructions, or otherdata.

Example types of computer-readable storage media include, but are notlimited to, solid state memory, flash memory, dynamic random accessmemory (DRAM), double data rate synchronous dynamic random access memory(DDR SDRAM), DDR2 SDRAM, DDR3 SDRAM, read-only memory (ROM), reducedlatency DRAM, electrically-erasable programmable ROM (EEPROM), and othertypes of devices and/or articles of manufacture that store data.

The processing system 304 includes one or more processing units, whichmay include tangible integrated circuits that selectively executecomputer-executable instructions. In various embodiments, the processingunits in the processing system 304 are implemented in various ways. Forexample, the processing units in the processing system 304 can beimplemented as one or more processing cores. In this example, theprocessing system 304 can comprise one or more Intel Coremicroprocessors. In another example, the processing system 304 cancomprise one or more separate microprocessors. In yet another exampleembodiment, the processing system 304 can comprise Application-SpecificIntegrated Circuits (ASICs) that provide specific functionality. In yetanother example, the processing system 304 provides specificfunctionality by using an ASIC and by executing computer-executableinstructions.

The computing device 300 may be enabled to send data to and receive datafrom a communication network via a network interface card 306. Indifferent embodiments, the network interface card 306 is implemented indifferent ways, such as an Ethernet interface, a token-ring networkinterface, a fiber optic network interface, a wireless network interface(e.g., Wi-Fi, Wi-Max, etc.), or another type of network interface. Thenetwork interface may allow the device to communicate with otherdevices, such as over a wireless network in a distributed computingenvironment, a satellite link, a cellular link, and comparablemechanisms. Other devices may include computer device(s) that executecommunication applications, storage servers, and comparable devices.

The secondary storage device 308 includes one or more computer-readablestorage media, and may store data and computer-executable instructionsnot directly accessible by the processing system 304. That is, theprocessing system 304 performs an I/O operation to retrieve data and/orcomputer-executable instructions from the secondary storage device 308.In various embodiments, the secondary storage device 308 can beimplemented as various types of computer-readable storage media, such asby one or more magnetic disks, magnetic tape drives, CD-ROM discs,DVD-ROM discs, BLU-RAY discs, solid state memory devices, and/or othertypes of computer-readable storage media.

The input device 310 enables the computing device 300 to receive inputfrom a user. Example types of input devices include, but are not limitedto, keyboards, mice, trackballs, stylus input devices, key pads,microphones, joysticks, touch-sensitive display screens, and other typesof devices that provide user input to the computing device 300.

The video interface 312 outputs video information to the display unit314. In different embodiments, the video interface 312 is implemented indifferent ways. For example, the video interface 312 is a videoexpansion card. In another example, the video interface 312 isintegrated into a motherboard of the computing device 300. In variousembodiments, the display unit 314 can be a an LCD display panel, atouch-sensitive display panel, an LED screen, a projector, a cathode-raytube display, or another type of display unit. In various embodiments,the video interface 312 communicates with the display unit 314 invarious ways. For example, the video interface 312 can communicate withthe display unit 314 via a Universal Serial Bus (USB) connector, a VGAconnector, a digital visual interface (DVI) connector, an S-Videoconnector, a High-Definition Multimedia Interface (HDMI) interface, aDisplayPort connector, or another type of connection.

The communications medium 316 facilitates communication among thehardware components of the computing device 300. In differentembodiments, the communications medium 316 facilitates communicationamong different components of the computing device 300. For instance, inthe example of FIG. 3, the communications medium 316 facilitatescommunication among the memory 302, the processing system 304, thenetwork interface card 306, the secondary storage device 308, the inputdevice 310, and the video interface 312. In different embodiments, thecommunications medium 316 is implemented in different ways, such as aPCI bus, a PCI Express bus, an accelerated graphics port (AGP) bus, anInfiniband interconnect, a serial Advanced Technology Attachment (ATA)interconnect, a parallel ATA interconnect, a Fiber Channel interconnect,a USB bus, a Small Computing system Interface (SCSI) interface, oranother type of communications medium.

The memory 302 stores various types of data and/or softwareinstructions. For instance, in the example of FIG. 3, the memory 302stores a Basic Input/Output System (BIOS) 318, and an operating system320. The BIOS 318 includes a set of software instructions that, whenexecuted by the processing system 304, cause the computing device 300 toboot up. The operating system 320 includes a set of softwareinstructions that, when executed by the processing system 304, cause thecomputing device 300 to provide an operating system that coordinates theactivities and sharing of resources of the computing device 300. Thememory 302 also stores one or more application programs 322 that, whenexecuted by the processing system 304, cause the computing device 300 toprovide applications to users, for example, one or more components ofthe social network/common interest recommendation system 100. The memory302 also stores one or more utility programs 324 that, when executed bythe processing system 304, cause the computing device 300 to provideutilities to other software programs. Embodiments of the presentinvention may be utilized in various distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a communications network in a distributed computing environment.

FIGS. 4A-4B illustrate a suitable mobile computing environment, forexample, a mobile computing device 400, a mobile phone, a tabletpersonal computer, a laptop computer, and the like, with whichembodiments may be practiced. The mobile computing device 400 isillustrative of any suitable device operative to send, receive andprocess wireless communications according to embodiments of the presentinvention. A display screen 405 is operative for displaying a variety ofinformation such as information about incoming and outgoingcommunications, as well as, a variety of data and displayable objects,for example, text, alphanumeric data, photographs, and the like.

Data input to the device 400 may be performed via a variety of suitablemeans, such as, touch screen input via the display screen 405, keyboardor keypad input via a data entry area 410, key input via one or moreselectable buttons or controls 415, voice input via a microphone 418disposed on the device 400, photographic input via a camera 422functionality associated with the mobile computing device, or any othersuitable input means. Data may be output via the device 400 via anysuitable output means, including but not limited to, display on thedisplay screen 405, audible output via an associated speaker 430 orconnected earphone system, vibration module for providing tactileoutput, and the like.

Referring now to FIG. 4B, operational unit 435 is illustrative ofinternal operating functionality of the mobile computing device 400. Aprocessor 440 is illustrative of a general purpose computer processorfor processing incoming and outgoing data and communications andcontrolling operation of the device and associated software applicationsvia a mobile computing device operating system. Memory 445 may beutilized for storing a device operating system, device programming, oneor more stored applications, for example, mobile telephone applications,data processing applications, calculators, games, Internet browsingapplications, navigation applications, acceleration applications, cameraand/or video applications, etc. According to one embodiment, one or morecomponents of the social network contact-based recommendation system maybe stored locally on mobile computing device 400.

Mobile computing device 400 may contain an accelerometer 455 fordetecting acceleration, and can be used to sense orientation, vibration,and/or shock. Mobile computing device 400 may contain a globalpositioning system (GPS) system (e.g., GPS send/receive functionality)460. A GPS system 460 uses radio waves to communicate with satellitesorbiting the Earth. Some GPS-enabled mobile computing devices usewireless-assisted GPS to determine a user's location, wherein the deviceuses orbiting GPS satellites in conjunction with information about thedevice's mobile phone signal. Radio functions 450 include all requiredfunctionality, including onboard antennae, for allowing the device 400to communicate with other communication devices and systems via awireless network. Radio functions 450 may be utilized to communicatewith a wireless or WIFI-based positioning system to determine a device's400 location.

FIG. 5 is a simplified block diagram illustrating a cable televisionservices system 500 (hereafter referred to as “CATV”) architectureproviding an operating environment according to an embodiment. As can beappreciated, a CATV architecture is but one of various types of systemsthat may be utilized to provide substituted VOD content. Referring nowto FIG. 5, digital and analog video programming, information content andinteractive television services are provided via a hybrid fiber coax(HFC) network 515 to a television set 516 for consumption by a cabletelevision/services system customer. As is known to those skilled in theart, HFC networks 515 combine both optical fiber and coaxial cablelines. Typically, optical fiber runs from the cable head end 555 toneighborhoods of subscribers. Coaxial cable runs from the optical fiberfeeders to each customer or subscriber. The functionality of the HFCnetwork 515 allows for efficient bidirectional data flow between theclient-side set-top box 518 and a server-side application server 540.

The CATV system 500 is in the form of a distributed client-servercomputing system for providing video and data flow across the HFCnetwork 515 between server-side services providers (e.g., cabletelevision/services providers) via a server-side head end 555 and aclient-side customer via a client-side set-top box (STB) 518functionally connected to a customer receiving device, such as thetelevision set 516. As is understood by those skilled in the art, modernCATV systems 500 may provide a variety of services across the HFCnetwork 515 including traditional digital and analog video programming,telephone services, high speed Internet access, video-on-demand, andinformation services.

On the client side of the CATV system 500, digital and analog videoprogramming and digital and analog data are provided to the customertelevision set 516 via the set-top box (STB) 518. Interactive televisionservices that allow a customer to input data to the CATV system 500likewise are provided by the STB 518. As illustrated in FIG. 5, the STB518 is a multipurpose computing device having a computer processor,memory, and an input/output mechanism. The input/output mechanismreceives input from server-side processes via the HFC network 515 andfrom customers via input devices such as the remote control device 528,keyboard 530, or other computing device, such as a tablet/slatecomputer, smart phone, etc. The remote control device 528 and thekeyboard 530 may communicate with the STB 518 via a suitablecommunication transport such as the infrared connection 532. The STB 518also includes a video processor for processing and providing digital andanalog video signaling to the television set 516 via a cablecommunication transport 534. A multi-channel tuner is provided forprocessing video and data to and from the STB 518 and the server-sidehead end system 555, described below.

The STB 518 also includes an operating system 522 for directing thefunctions of the STB 518 in conjunction with a variety of clientapplications 525. For example, if a client application 525 requires anews flash from a third-party news source to be displayed on thetelevision 516, the operating system 522 may cause the graphicsfunctionality and video processor of the STB 518, for example, to outputthe news flash to the television 516 at the direction of the clientapplication 525 responsible for displaying news items. According toembodiments, the operating system 522 may include one or more componentsof the social network/common interest recommendation system 100 asdescribed herein.

Because a variety of different operating systems 522 may be utilized bya variety of different brands and types of set-top boxes, a middlewarelayer 524 may be provided to allow a given software application to beexecuted by a variety of different operating systems. According to anembodiment, the middleware layer 524 may include a set of applicationprogramming interfaces (APIs) that are exposed to client applications525 and operating systems 522 that allow the client applications tocommunicate with the operating systems through common data callsunderstood via the API set. As described below, a correspondingmiddleware layer is included on the server side of the CATV system 500for facilitating communication between the server-side applicationserver and the client-side STB 518. The middleware layer 542 of theserver-side application server and the middleware layer 524 of theclient-side STB 518 may format data passed between the client side andserver side according to the Extensible Markup Language (XML).

According to one embodiment, the set-top box 518 passes digital andanalog video and data signaling to the television 516 via a one-waycommunication transport 534. According to other embodiments, two-waycommunication transports may be utilized, for example, via highdefinition multimedia (HDMI) ports. The STB 518 may receive video anddata from the server side of the CATV system 500 via the HFC network 515through a video/data downlink and data via a data downlink. The STB 518may transmit data from the client side of the CATV system 500 to theserver side of the CATV system 500 via the HFC network 515 via one datauplink. The video/data downlink is an “in band” downlink that allows fordigital and analog video and data signaling from the server side of theCATV system 500 through the HFC network 515 to the set-top box 518 foruse by the STB 518 and for distribution to the television set 516. As isunderstood by those skilled in the art, the “in band” signaling spaceoperates at a relative high frequency, e.g., between 54 and 400megahertz. The signaling space is generally divided into 6 megahertzchannels in which may be transmitted as a single analog signal or agreater number (e.g., ten) of digital signals.

The data downlink and the data uplink, illustrated in FIG. 5, betweenthe HFC network 515 and the set-top box 518 comprise “out of band” datalinks. As is understand by those skilled in the art, the “out of band”frequency range is generally at a lower frequency than “in band”signaling. For example, the “out of band” frequency range may be betweenzero and 54 megahertz. Data flow between the client-side set-top box 518and the server-side application server 540 is typically passed throughthe “out of band” data links. Alternatively, an “in band” data carouselmay be positioned in an “in band” channel into which a data feed may beprocessed from the server-side application server 540 through the HFCnetwork 515 to the client-side STB 518. Operation of data transportbetween components of the CATV system 500, described with reference toFIG. 5, is well known to those skilled in the art.

Referring still to FIG. 5, the head end 555 of the CATV system 500 ispositioned on the server side of the CATV system and includes hardwareand software systems responsible for originating and managing contentfor distributing through the HFC network 515 to client-side STBs 518 forpresentation to customers via televisions 516. As described above, anumber of services may be provided by the CATV system 500, includingdigital and analog video programming, interactive television services,telephone services, video-on-demand services, targeted advertising, andprovision of information content.

The application server 540 is a general-purpose computing systemoperative to assemble and manage data sent to and received from theclient-side set-top box 518 via the HFC network 515. As described abovewith reference to the set-top box 518, the application server 540includes a middleware layer 542 for processing and preparing data fromthe head end of the CATV system 500 for receipt and use by theclient-side set-top box 518. For example, the application server 540 viathe middleware layer 542 may obtain data from third-party services 546via the Internet 120 for transmitting to a customer through the HFCnetwork 515 and the set-top box 518. For example, content metadata athird-party content provider service may be downloaded by theapplication server via the Internet 120. When the application server 540receives the downloaded content metadata, the middleware layer 542 maybe utilized to format the content metadata for receipt and use by theset-top box 518. Therefore, content metadata may be sent and categorizedbased on the availability to the customer's program guide data.

According to one embodiment, data obtained and managed by the middlewarelayer 542 of the application server 540 is formatted according to theExtensible Markup Language and is passed to the set-top box 518 throughthe HFC network 515 where the XML-formatted data may be utilized by aclient application 525 in concert with the middleware layer 524, asdescribed above. As should be appreciated by those skilled in the art, avariety of third-party services data, including news data, weather data,sports data and other information content may be obtained by theapplication server 540 via distributed computing environments such asthe Internet 120 for provision to customers via the HFC network 515 andthe set-top box 518.

According to embodiments, the application server 540 obtains customersupport services data, including billing data, information on customerwork order status, answers to frequently asked questions, servicesprovider contact information, and the like from data services 560 forprovision to the customer via an interactive television session. Asillustrated in FIG. 5, the services provider data services 560 include anumber of services operated by the services provider of the CATV system500 which may include data on a given customer.

A billing system 562 may include information such as a customer's name,street address, business identification number, Social Security number,credit history, and information regarding services and productssubscribed to by the customer. According to embodiments, the billingsystem 562 may also include billing data for services and productssubscribed to by the customer for bill processing, billing presentmentand payment receipt.

A customer information database 568 may include general informationabout customers such as place of employment, business address, businesstelephone number, and demographic information such as age, gender,educational level, and the like. The customer information database 568may also include information on pending work orders for services orproducts ordered by the customer. The customer information database 568may also include general customer information such as answers tofrequently asked customer questions and contact information for variousservice provider offices/departments. As should be understood, thisinformation may be stored in a variety of disparate databases operatedby the cable services provider.

Referring still to FIG. 5, web services system 550 is illustratedbetween the application server 540 and the data services 560. Accordingto embodiments, web services system 550 serves as a collection point fordata requested from each of the disparate data services systemscomprising the data services 560. According to embodiments, when theapplication server 540 requires customer services data from one or moreof the data services 560, the application server 540 passes a data queryto the web services system 550. The web services system formulates adata query to each of the available data services systems for obtainingany required data for a requesting customer as identified by a set-topbox identification associated with the customer. The web services system550 serves as an abstraction layer between the various data servicessystems and the application server 540. That is, the application server540 is not required to communicate with the disparate data servicessystems, nor is the application server 540 required to understand thedata structures or data types utilized by the disparate data servicessystems. The web services system 550 is operative to communicate witheach of the disparate data services systems for obtaining necessarycustomer data. The customer data obtained by the web services system isassembled and is returned to the application server 540 for ultimateprocessing via the middleware layer 542, as described above.

An authentication system 566 may include information such as secure usernames, subscriber profiles, subscriber IDs, and passwords utilized bycustomers for access to network services. As should be understood bythose skilled in the art, the disparate systems 562, 564, 566, 568 maybe integrated or provided in any combination of separate systems,wherein FIG. 5 shows only one example.

Embodiments the invention may be used in combination with any number ofcomputer systems, such as in desktop environments, laptop or notebookcomputer systems, multiprocessor systems, micro-processor based orprogrammable consumer electronics, networked PCs, mini computers, mainframe computers, mobile communication device systems and the like.Embodiments of the present invention may be utilized in variousdistributed computing environments where tasks are performed by remoteprocessing devices that are linked through a communications network in adistributed computing environment, and where programs may be located inboth local and remote memory storage.

Embodiments, for example, are described above with reference to blockdiagrams and/or operational illustrations of methods, systems, andcomputer program products according to embodiments. The functions/actsnoted in the blocks may occur out of the order as shown in any flowchartor described herein with reference to FIGS. 1-5. For example, twoprocesses shown or described in succession may in fact be executedsubstantially concurrently or the blocks may sometimes be executed inthe reverse order, depending upon the functionality/acts involved.

While certain embodiments have been described, other embodiments mayexist. Furthermore, although embodiments have been described as beingassociated with data stored in memory and other storage mediums, datamay also be stored on or read from other types of computer-readablestorage media, such as secondary storage devices, like hard disks,floppy disks, a CD-ROM, or other forms of RAM or ROM. Further, thedisclosed processes may be modified in any manner, including byreordering and/or inserting or deleting a step or process, withoutdeparting from the embodiments.

The foregoing description of the exemplary embodiment of the inventionhas been presented for the purposes of illustration and description. Itis not intended to be exhaustive or to limit the invention to theprecise form disclosed. Many modifications and variations are possiblein light of the above teaching. It is intended that the scope of theinvention be limited not with this detailed description, but rather bythe claims appended hereto.

What is claimed is:
 1. A method for providing social networkcontact-based recommendations, the method comprising: automaticallydiscovering at least one social network contact of a user who shares acommon taste with the user in one or more interest areas by: receiving alisting of social network contacts of the user, wherein the user and oneor more of the social network contacts are subscribers of a serviceprovided by a service provider; matching the one or more of the socialnetwork contacts from the listing with subscribers of the serviceprovider; collecting, via the service provider, consumption data of theuser and each of the matched social network contacts, wherein theconsumption data includes a listing of content consumed from the serviceprovider by the user and a listing of content consumed from the serviceprovider by each of the matched social network contacts; computing, fromthe consumption data, a correlation in the one or more interest areasbetween the user and each of the matched social network contacts bydetermining a correlation score for a similarity between the consumptiondata of the user and each of the matched social network contacts in theone or more interest areas; and in response to determining thecorrelation score between the user and at least one social networkcontact from the matched social network contacts meets a predeterminedthreshold in the one or more interest areas, determining that the atleast one social network contact shares a common taste with the user inthe one or more interest areas; and providing recommendations thatreflect the shared common taste in the one or more interest areas to theuser, the recommendations based on the consumption data of the user andthe at least one social network contact.
 2. The method of claim 1,wherein receiving the listing of social network contacts of the usercomprises receiving social network credentials and retrieving thelisting of the social network contacts.
 3. The method of claim 1,wherein providing the recommendations in the one or more interest areascomprises providing the recommendations in one or more of: televisionprogramming; video content; music content; electronic books; goods;services; organizational affiliations; hobbies; websites; or blogs. 4.The method of claim 1, wherein providing the recommendations in the oneor more interest areas comprises providing a recommendation via amessage displayed on a display device.
 5. The method of claim 1, whereinproviding the recommendations in the one or more interest areascomprises providing a recommendation via a message posted to a socialmedia page of the user.
 6. The method of claim 1, further comprisingproviding a selectable functionality with a recommendation from amongthe recommendations, which when selected tunes the user's device tocontent currently being watched or listened to by the at least onesocial network contact associated with the recommendation.
 7. The methodof claim 1, further comprising: after determining a correlation score inthe one or more interest areas between the user and each of the matchedsocial network contacts, ranking the matched social network contacts inorder according to the correlation score; and determining a toppredetermined number of highest ranking social network contacts thatshare a particular correlation in a particular interest area.
 8. Themethod of claim 1, further comprising providing a selectablefunctionality with a recommendation from among the recommendations,which when selected allows the user to chat with the at least one socialnetwork contact associated with the recommendation.
 9. The method ofclaim 1, further comprising providing an automated periodic email to theuser comprising a listing of one or more of: media content the at leastone social network contact has consumed that the user has not; or mediacontent the at least one social network contact has consumed that theuser also has consumed.
 10. The method of claim 1, further comprisingproviding a functionality for allowing the at least one social networkcontact to manually provide one or more recommendations to the user. 11.The method of claim 1, further comprising providing a functionality forallowing the user to highlight recommendations provided by the at leastone social network contact.
 12. The method of claim 1, wherein providingthe recommendations-comprises providing a percentage of the correlationbetween the consumption data of the user and the at least one socialnetwork contact in the one or more interest areas.
 13. The method ofclaim 1, wherein providing the recommendations further comprisesinterpreting and executing flexible business rules that activelyprioritize content.
 14. A system for providing social networkcontact-based recommendations, the system comprising: a memory storage;and a processing unit coupled to the memory storage, wherein theprocessing unit is operable to: automatically discover at least onesocial network contact of a user who shares a common taste with the userin one or more interest areas by: receiving a listing of social networkcontacts of the user, wherein the user and one or more of the socialnetwork contacts are subscribers of a service provided by a serviceprovider; matching the one or more of the social network contacts fromthe listing with subscribers of the service provider; collecting, viathe service provider, consumption data of the user and each of thematched social network contacts, the consumption data including alisting of content consumed from the service provider by the user and alisting of content consumed from the service provider by each of thematched social network contacts; computing, from the consumption data, acorrelation in the one or more interest areas between the user and eachof the matched social network contacts by determining a correlationscore for a similarity between the consumption data of the user and eachof the matched social network contacts in the one or more interestareas; and in response to determining the correlation score between theuser and at least one social network contact from the matched socialnetwork contacts meets a predetermined threshold in the one or moreinterest areas, determining that the at least one social network contactshares a common taste with the user in the one or more interest areas;and provide recommendations that reflect the shared common taste in theone or more interest areas to the user, the recommendations based on theconsumption data of the user and the at least one social networkcontact.
 15. The system of claim 14, wherein the processor is furtheroperable to receive social network credentials and retrieve the listingof the social network contacts of the user.
 16. The system of claim 14,wherein the one or more interest areas comprise one or more of:television programming; video content; music content; electronic books;goods; services; websites; or blogs.
 17. The system of claim 14, whereinthe processor is further operable to: after determining the correlationscore for the similarity between the consumption data of the user andeach of the matched social network contacts in the one or more interestareas, rank each of the matched social network contacts in orderaccording to the correlation score; and determine a top predeterminednumber of highest ranking social network contacts that share aparticular correlation in a particular interest area.
 18. The system ofclaim 14, wherein the processor is further operable to provide one ormore of: a selectable functionality with a recommendation from among therecommendations, which when selected tunes the user's device to contentcurrently being watched or listened to by the at least one socialnetwork contact associated with the recommendation; a selectablefunctionality with a recommendation from among the recommendations,which when selected allows the user to chat with the at least one socialnetwork contact associated with the recommendation; an automatedperiodic email to the user comprising a listing of one or more of: mediacontent the at least one social network contact has consumed that theuser has not; or media content the at least one social network contacthas consumed that the user also has consumed; a functionality forallowing the at least one social network contact to manually provide oneor more recommendations to the user; or a functionality for allowing theuser to highlight recommendations provided by the at least one socialnetwork contact.
 19. A non-transitory computer-readable memory devicewhich stores a set of instructions which when executed performs a methodfor providing social network contact-based recommendations, the methodexecuted by the set of instructions comprising: automaticallydiscovering at least one social network contact of a user who shares acommon taste with the user in one or more interest areas by: receiving alisting of social network contacts of the user, wherein the user and oneor more of the social network contacts are subscribers of a serviceprovided by a service provider; matching the one or more of the socialnetwork contacts from the listing with subscribers of the serviceprovider; collecting, via the service provider, consumption data of theuser and each of the matched social network contacts, wherein theconsumption data includes a listing of content consumed from the serviceprovider by the user and a listing of content consumed from the serviceprovider by each of the matched social network contacts; computing, fromthe consumption data, a correlation in the one or more interest areasbetween the user and each of the matched social network contacts bydetermining a correlation score for a similarity between the consumptiondata of the user and each of the matched social network contacts in theone or more interest areas; and in response to determining thecorrelation score between the user and at least one social networkcontact from the matched social network contacts meets a predeterminedthreshold in the one or more interest areas, determining that the atleast one social network contact of the user shares a common taste withthe user in the one or more interest areas; and providingrecommendations that reflect the shared common taste in the one or moreinterest areas to the user, the recommendations based on the consumptiondata of the user and the at least one social network contact.
 20. Thenon-transitory computer-readable memory device of claim 19, whereincomputing a correlation in the one or more interest areas between theuser and each of the matched social network contacts further comprises:after determining the correlation score for the similarity between theconsumption data of the user and each of the matched social networkcontacts in the one or more interest areas, ranking the matched socialnetwork contacts in order according to the correlation score anddetermining a top predetermined number of highest ranking social networkcontacts that share a particular correlation in a particular interestarea.
 21. The non-transitory computer-readable memory device of claim19, further comprising providing one or more of: a selectablefunctionality with a recommendation from among the recommendations,which when selected tunes the user's device to content currently beingwatched or listened to by the at least one social network contactassociated with the recommendation; a selectable functionality with arecommendation from among the recommendations, which when selectedallows the user to chat with the at least one social network contactassociated with the recommendation; an automated periodic email to theuser comprising a listing of one or more of: media content the at leastone social network contact has consumed that the user has not; or mediacontent the at least one social network contact has consumed that theuser also has consumed; a functionality for allowing the at least onesocial network contact to manually provide one or more recommendationsto the user; or a functionality for allowing the user to highlightrecommendations provided by the at least one social network contact. 22.The method of claim 1, further comprising utilizing feedback data basedon the recommendations to then refine preferences of the user forcontent.